51单片机之逻辑运算指令ANL、ORL、XRL等 您所在的位置:网站首页 指令CLR IT0什么意思 51单片机之逻辑运算指令ANL、ORL、XRL等

51单片机之逻辑运算指令ANL、ORL、XRL等

#51单片机之逻辑运算指令ANL、ORL、XRL等| 来源: 网络整理| 查看: 265

文章目录 前言一、简单操作指令 CLR、CPL、SWAPCLR ACPL ASWAP A 二、位移指令 RL、RR、RLC、RRCRL ARR ARLC ARRC A 三、逻辑“与”指令 ANLANL A, XXXANL direct, XXX 四、逻辑“或”指令 ORLORL A, XXXORL direct, XXX 五、逻辑“异或”指令 XRLXRL A, XXXXRL direct, XXX

前言

逻辑操作指令包括与、或、异或、清除、求反、移位等操作,其操作数都是8位

一、简单操作指令 CLR、CPL、SWAP

CLR英文全称:Clear CPL英文全称:Complement SWAP英文全称:Swap

CLR A

指令名称:累加器A清0指令 目的:将累加器A中的内容清零

CPL A

指令名称:累加器A取反指令 目的:将累加器A的内容逐位取反

SWAP A

指令名称:累加器半字节交换指令 目的:将累加器A的高低两半字节交换

助记符功能对标志位影响字节数周期数POVACCYCLR A0 -> A√×××11CPL A(/A) -> A××××11SWAP A (AL) (AH)××××11

AL:A0123低半字节位; AH:A4567高半字节位; *表示无影响,√表示有影响,下同

例 (A) = 07H 即 (A) = 0000 0111B

CLR A:表示A的8位都位零,(A) = 0000 0000B;CPL A:表示A的内容逐位取反,(A) = 1111 1000B = F8H;SWAP A:表示A的高低半字节交换,(A) = 0111 0000B = 70H。 二、位移指令 RL、RR、RLC、RRC

RL英文全称:Rotate Left RR英文全称:Rotate Right RLC英文全称:Rotate Left throught the Carry flag RRC英文全称:Rotate Right throught the Carry flag

RL A

指令名称:累加器A循环左移指令 目的:累加器A的内容最高位变最低位,其他位都升一位

RR A

指令名称:累加器A循环右移指令 目的:累加器A的内容最低位变最高位,其他位都降一位

RLC A

指令名称:累加器A连同进位位循环左移指令 目的:累加器A的内容最高位进入CY,CY位的内容进入最低位,其他位都升一位

RRC A

指令名称:累加器A连同进位位循环右移指令 目的:累加器A的内容最低位进入CY,CY位的内容进入最高位,其他位都升一位

助记符功能对标志位影响字节数周期数POVACCYRL AA循环左移一位××××11RR AA循环右移一位××××11RLC AA带进位循环左移一位√××√11RRC AA带进位循环右移一位√××√11 RLC可以做乘2运算;左移一位可以看作乘2,前提是第7位是0;右移一位可以看作除2,前提是第0位是0;

例无符号8位二进制数(A) = 1011 1101B = BDH, CY = 0

RL A:将A的第7位送入第0位,其余位提升一位,结果为:(A) = 0111 1011B

RR A:将A的第0位送入第7位,其余位降低一位,结果为:(A) = 1101 1110B

RLC A:将A的第7位送入CY中,将CY的内容送入第0位,结果为(CY) = 1,(A) = 0111 1010B,表示17AH,正好是BDH两倍;

RRC A:将A的第0位送入CY中,将CY的内容送入第7位,结果为(CY) = 1,(A) = 0101 1110B,A中表示57H。

三、逻辑“与”指令 ANL

ANL英文全称:ANL Logic

ANL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“与”操作,结果存放在A中 源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符功能对标志位影响字节数周期数POVACCYANL A, Rn(A) ∧ (Rn) -> A√×××11ANL A, @Ri(A) ∧ ((Ri)) -> A; i = 0, 1√×××11ANL A, direct(A) ∧ (direct) -> A√×××21ANL A, #data(A) ∧ data -> A√×××21 ANL能将某些位清零,对于想清零的位与0进行“与”逻辑,对于想保持原来的位与1进行“与”逻辑;

例 (A) = 1111 1100B = FCH,(10) = 2FH,(2FH) = 2DH,(R0) = 10H

ANL A, R0:结果为(A) = 0001 0000B;ANL A, @R0:结果为(A) = 0010 1100B;ANL A, 10H:结果为(A) = 0010 1100B;ANL A, #10H:结果为(A) = 0001 0000B。 ANL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“与”操作,结果存放在直接地址中 源操作数:累加器A、立即数#data

助记符功能对标志位影响字节数周期数POVACCYANL direct, A(direct) ∧ (A) -> direct××××21ANL direct, #data(direct) ∧ data -> direct××××32 四、逻辑“或”指令 ORL

ORL英文全称:OR Logic

ORL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“或”操作,结果存放在A中 源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符功能对标志位影响字节数周期数POVACCYORL A, Rn(A) ∨ (Rn) -> A√×××11ORL A, @Ri(A) ∨ ((Ri)) -> A; i = 0, 1√×××11ORL A, direct(A) ∨ (direct) -> A√×××21ORL A, #data(A) ∨ data -> A√×××21 ORL能将某些位置一,对于想置一的位与1进行“或”逻辑,对于想保持原来的位与0进行“或”逻辑;

例 (A) = 1001 1100B = 9CH,(E1) = DFH,(DFH) = 2DH,(R0) = E1H

ORL A, R0:结果为(A) = 1111 1101B = FDH;ORL A, @R0:结果为(A) = 1101 1111B = DFH;ORL A, E1H:结果为(A) = 1101 1111B = DFH;ORL A, #E1H:结果为(A) = 1111 1101B = FDH。 ORL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中 源操作数:累加器A、立即数#data

助记符功能对标志位影响字节数周期数POVACCYORL direct, A(direct) ∨ (A) -> direct××××21ORL direct, #data(direct) ∨ data -> direct××××32 五、逻辑“异或”指令 XRL

XRL英文全称:Exclusive-OR Logic

XRL A, XXX

目的:将累加器A中的内容和操作数所指向的内容按位进行逻辑“异或”操作,结果存放在A中 源操作数:寄存器Rn、直接地址direct、间接寄存器@Ri、立即数#data

助记符功能对标志位影响字节数周期数POVACCYXRL A, Rn(A) ⊕ (Rn) -> A√×××11XRL A, @Ri(A) ⊕ ((Ri)) -> A; i = 0, 1√×××11XRL A, direct(A) ⊕ (direct) -> A√×××21XRL A, #data(A) ⊕ data -> A√×××21 XRL能将某些位置取反; XRL direct, XXX

目的:将直接地址单元的内容和源操作数的内容按位进行逻辑“或”操作,结果存放在直接地址中 源操作数:累加器A、立即数#data

助记符功能对标志位影响字节数周期数POVACCYXRL direct, A(direct) ⊕ (A) -> direct××××21XRL direct, #data(direct) ⊕ data -> direct××××32

51单片机之系统指令

51单片机之数据转移指令MOV、MOVX、MOVC等

51单片机之位操作指令SETB、CPL等

51单片机之控制转移指令SJMP、LJMP等

51单片机之算术运算指令ADDC、SUBB等

由本人水平有限,文章难免有错误,望告知



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有